Skip to content

feat(evm-wallet-experiment): Add delegator exos#882

Draft
grypez wants to merge 4 commits intomainfrom
grypez/gator-exo
Draft

feat(evm-wallet-experiment): Add delegator exos#882
grypez wants to merge 4 commits intomainfrom
grypez/gator-exo

Conversation

@grypez
Copy link
Contributor

@grypez grypez commented Mar 19, 2026

WIP

grypez and others added 4 commits March 19, 2026 10:08
Represent delegations as discoverable exo objects ("twins") so an agent
can call E(twin).transfer(to, amount) instead of manually building
Execution structs. Adds a method catalog, grant builder, twin factory
with cumulative spend tracking, and wires them into the delegation and
coordinator vats.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…wins

Build typed method guards from METHOD_CATALOG entries and pass them to
makeDiscoverableExo, enabling arg-count/type validation at the exo boundary.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
… caveat

Integrate with the delegation framework's AllowedCalldataEnforcer to pin
the first argument (recipient/spender) of transfer/approve at both the
on-chain enforcer level and the local exo interface guard.

- Add `allowedCalldata` to CaveatTypeValues and CaveatSpec
- Add `encodeAllowedCalldata` helper and deployed enforcer address
- Wire optional `recipient`/`spender` through grant builders
- Twin derives address restriction from caveatSpecs, not a standalone field

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@github-actions
Copy link
Contributor

Coverage Report

Status Category Percentage Covered / Total
🔵 Lines 77.05%
⬇️ -0.26%
7898 / 10250
🔵 Statements 76.84%
⬇️ -0.28%
8023 / 10441
🔵 Functions 75.12%
⬇️ -0.23%
1906 / 2537
🔵 Branches 74.5%
⬇️ -0.30%
3230 / 4335
File Coverage
File Stmts Branches Functions Lines Uncovered Lines
Changed Files
packages/evm-wallet-experiment/src/constants.ts 96.55%
🟰 ±0%
90%
🟰 ±0%
75%
🟰 ±0%
100%
🟰 ±0%
3
packages/evm-wallet-experiment/src/index.ts 100%
🟰 ±0%
100%
🟰 ±0%
100%
🟰 ±0%
100%
🟰 ±0%
packages/evm-wallet-experiment/src/types.ts 88.88%
⬇️ -2.42%
0%
🟰 ±0%
25%
⬇️ -8.33%
88.88%
⬇️ -2.42%
28, 37, 332
packages/evm-wallet-experiment/src/lib/caveats.ts 100%
🟰 ±0%
100%
🟰 ±0%
100%
🟰 ±0%
100%
🟰 ±0%
packages/evm-wallet-experiment/src/lib/delegation-grant.ts 70.73% 66.66% 66.66% 72.5% 20, 35, 98, 132-144, 197-209, 213-224, 260-266
packages/evm-wallet-experiment/src/lib/delegation-twin.ts 92.15% 93.33% 84.61% 92.15% 71, 95, 103, 145
packages/evm-wallet-experiment/src/lib/method-catalog.ts 90% 50% 75% 100% 11
packages/evm-wallet-experiment/src/vats/coordinator-vat.ts 78.93%
⬇️ -4.42%
71.48%
⬇️ -2.67%
79.77%
⬇️ -5.77%
79.15%
⬇️ -4.26%
52, 76-78, 116-161, 443-446, 465-467, 487, 491, 684, 687, 723-725, 733, 748-752, 910-926, 955-958, 990, 1014-1017, 1026-1028, 1061-1064, 1083-1085, 1113-1116, 1128-1130, 1189, 1202, 1209, 1216, 1277-1279, 1408, 1427-1430, 1451-1459, 1503, 1537-1541, 1545-1548, 1556, 1652, 1722, 1758-1760, 1774-1776, 1800, 1813-1910, 1926, 2030-2036, 2125, 2200, 2218, 2303, 2320-2323, 2350-2353, 2358, 2372, 2417-2418, 2460, 2468, 2471-2473, 2489, 2509, 2531, 2540-2550, 2560-2567, 2575-2584, 2586
packages/evm-wallet-experiment/src/vats/delegation-vat.ts 78.46%
⬇️ -14.13%
75%
⬇️ -4.41%
80%
⬇️ -12.30%
79.68%
⬇️ -14.65%
27, 118, 176, 201, 215-231
Generated in workflow #3964 for commit 6823dad by the Vitest Coverage Report Action

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant